Skip to content

Conversation

@BillWagner
Copy link
Member

Fixes #1800
Fixes #3242
Fixes #4625

The new options are:

-pathmap
-publicsign
-keyfile now works on CoreCLR (-keycontainer does not)

Update lists of alphabetic commands, pages by category, and TOC.

Also, fixed a variety of markdown lint warnings. These are mostly whitespace.

Reviews will be easier using the rich diff view.

/cc @jcouv

@BillWagner BillWagner requested review from mairaw and rpetrusha May 16, 2018 00:12
@jcouv
Copy link
Member

jcouv commented May 16, 2018

Tagging @tmat @agocke for review.

BillWagner referenced this pull request in BillWagner/docs May 17, 2018
Fixes #5289

This PR adds the overview to "What's new in C# 7.3". I updated the wording in the TOC to remove the repeated "What's new" phrasing.

/cc @jcouv @MadsTorgersen

/cc @Welchen

This PR relies on new files added in PR #5408
The new options are:

-pathmap
-publicsign
-keyfile now works on CoreCLR (-keycontainer does not)

Also, fixed a variety of markdown lint warnings. These are mostly whitespace.

Reviews will be easier using the rich diff view.
@BillWagner BillWagner force-pushed the update-compiler-options branch from 5a2e202 to a9cfbaa Compare May 18, 2018 14:58
---
# -pathmap (C# Compiler Options)

The **-pathmap** compiler option mapping for source path names output by the compiler.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this missing a verb (possibly "specifies")?

---
# -publicsign (C# Compiler Options)

This option causes the compiler to apply a public key without actually signing it. The **-publicsign** option also sets a bit in the assembly that tells the runtime that the file is actually signed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the first sentence, I think it's not clear what "it" refers to.


The **-publicsign** and **-delaysign** options are mutually exclusive.

Sometimes called "fake sign" or "OSS sign" public signing is including the public key in an output assembly and setting the "signed" flag, but not actually signing the assembly with a private key. This is useful for open source projects where people want to build assemblies which are compatible with the released "fully signed" assemblies, but don't have access to the private key used to sign the assemblies. Since almost no consumers actually need to check if the assembly is fully signed, these publicly built assemblies are useable in almost every scenario that the fully signed one would be used in.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing comma before "public signing" in the first sentence?

And update a few grammar inconsistencies.
Copy link
Contributor

@JRAlexander JRAlexander left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, @BillWagner - just a few small things.

`sourcePath1`
The source path substituted for `path1` in any output files.

You can specify multiple mappings, separating each with a comma.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ing. How about something like "To specify multiple mapped source paths, separate each with a comma."?


## Remarks
When the **-keycontainer** option is used, the compiler creates a sharable component by inserting a public key from the specified container into the assembly manifest and signing the final assembly with the private key. To generate a key file, type sn -k `file` at the command line. sn -i installs the key pair into a container.
When the **-keycontainer** option is used, the compiler creates a sharable component by inserting a public key from the specified container into the assembly manifest and signing the final assembly with the private key. To generate a key file, type sn -k `file` at the command line. sn -i installs the key pair into a container. This option is not supported when the compiler is running on CoreCLR. To sign an assembly when building on CoreCLR, use the [-keyfile](keyfile-compiler-option.md) option.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple "ings".
Maybe "When the -keycontainer option is used, the compiler creates a sharable component with the following steps:

  • Inserts a public key from the specified container into the assembly manifest.
  • Signs the final assembly with the private key.", and maybe something like:
    " This option is not supported when the compiler runs on CoreCLR. To sign an assembly for CoreCLR build scenarios, use the -keyfile option."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it a bit differently, but all the -ings are gone.


The **-delaysign** and **-publicsign** options are mutually exclusive.

When you request a fully signed assembly, the compiler hashes the file that contains the manifest (assembly metadata) and signs that hash with the private key. The resulting digital signature is stored in the file that contains the manifest. When an assembly is delay signed, the compiler does not compute and store the signature, but reserves space in the file so the signature can be added later.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ing. "The output is a digital signature stored in the file that contains the manifest."?

---
# -pathmap (C# Compiler Options)

The **-pathmap** compiler option specifies a mapping for source path names output by the compiler.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ing. "The -pathmap compiler option specifies a source path names map output by the compiler."?

---
# -publicsign (C# Compiler Options)

This option causes the compiler to apply a public key without actually signing the assembly. The **-publicsign** option also sets a bit in the assembly that tells the runtime that the file is actually signed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ing. Maybe "This option causes the compiler to apply a public key without an assembly sign."?

@JRAlexander
Copy link
Contributor

Excellent, @BillWagner!

@BillWagner BillWagner merged commit da2fb55 into dotnet:master May 23, 2018
@BillWagner BillWagner deleted the update-compiler-options branch May 23, 2018 17:08
|[-baseaddress](baseaddress-compiler-option.md)|Specifies the base address for the library to be built.|
|[-bugreport](bugreport-compiler-option.md)|Creates a 'Bug Report' file. This file will be sent together with any crash information if it is used with -errorreport:prompt or -errorreport:send.|
|[-checked](checked-compiler-option.md)|Causes the compiler to generate overflow checks.|
|-checksumalgorithm:\<alg>|Specify the algorithm for calculating the source file checksum stored in PDB. Supported values are: SHA1 (default) or SHA256.|
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all the others are in 3rd person, why change here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll address this in a new PR.

I'm not seeing a change in person here. What am I missing?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It used to say specifies and it was matching the other lines - Causes, Links, Names, Displays, etc.

Makes sense @BillWagner?

csc -pathmap:C:\work\tests=\publish t.cs
```

## See Also
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: sentence case

BillWagner referenced this pull request in BillWagner/docs May 23, 2018
This PR adds a few small changes requested in PR #5408 that got missed.
BillWagner added a commit that referenced this pull request May 23, 2018
This PR adds a few small changes requested in PR #5408 that got missed.
BillWagner referenced this pull request in BillWagner/docs May 25, 2018
Fixes #5289

This PR adds the overview to "What's new in C# 7.3". I updated the wording in the TOC to remove the repeated "What's new" phrasing.

/cc @jcouv @MadsTorgersen

/cc @Welchen

This PR relies on new files added in PR #5408
BillWagner added a commit that referenced this pull request May 25, 2018
* create "what's new in C# 7.3"

Fixes #5289

This PR adds the overview to "What's new in C# 7.3". I updated the wording in the TOC to remove the repeated "What's new" phrasing.

/cc @jcouv @MadsTorgersen

/cc @Welchen

This PR relies on new files added in PR #5408

* respond to feedback

* respond to feedback

* more feedback

* respond to feedback.

* fix a build error

compile => compiler.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add documentation for -publicsign compiler switch New compiler option: Strong name provider Document the C# compiler /pathmap command line flag

6 participants