我经常使用记事本++来编辑csproj文件。 我总是需要转到语言菜单并selectXML以获得语法高亮显示。 有没有可能configuration记事本++将csproj文件自动处理为XML? 谢谢。
我正在打包SDK分发的示例代码。 在发行版中,从代码到SDK程序集的相对path与构build机器不同。 例如: 分配 csharp/bin/assembly.dll example/ex1/ex1.csproj build立机器 foo/sdk/csharp/bin/assembly.dll bar/baz/quux/ex1/ex1.csproj 假设我不能移动任何东西。 有没有一种方法,我可以指示ex1.csproj看在两个 ../../csharp/bin/ 和 ../../../../foo/sdk/csharp/bin/ for assembly.dll ? 在C ++中,我会把依赖path放在一个独立的属性表中,并用SDK分发不同的版本。 但C#没有属性表,我不想维护整个项目的两个版本。 我见过这个问题 ,说我不能使用多个<HintPath>标签,所以我正在寻找另一种方法来近似相同的行为。
我正在使用VS2010,我试图通过文件引用从本地硬盘添加一些程序集到我的C#项目。 csproj文件,我发现有时文件引用显示为 <Reference Include="name"> 不过有时候看起来像 <Reference Include="name, Version=xxx, Culture=neutral, processorArchitecture=MSIL"> 什么可能导致差异? 受k3b的回答启发,我做了另一个testing。 我创build了一个新的类库项目。 添加文件参考。 “ 特性”窗格中的“ 特定版本 ”的初始值为False 。 csproj文件看起来像 <Reference Include="Name"> <HintPath>…</HintPath> </Reference> 将属性窗格中的特定版本更改为True 。 VS在Include属性中添加版本。 <Reference Include="Name, Version=…"> <HintPath>…</HintPath> </Reference> 将属性窗格中的特定版本更改为False 。 VS添加一个子元素SpecificVersion 。 <Reference Include="Name, Version=…"> <HintPath>…</HintPath> <SpecificVersion>False</SpecificVersion> </Reference> 所以看来这个规则是: 当包含属性中存在版本并且没有SpecificVersion子元素时,文件程序集configuration为特定版本 SpecificVersion子元素只附加值False 。 有一件事我还是不明白: 对于我的新testing项目,如果删除文件引用并将其重新添加回去,则会返回到缺省值为1的格式。 对于我现有的项目,如果我删除了文件引用并将其重新添加回来,我将回到第3点的格式。虽然这也意味着不使用特定版本,但我想知道为什么它不回到格式的第1点。
我有一个C#项目说:位于“C:\ Projects \ MyProject \”MyProject.csproj。 我也有我想要复制到这个项目的输出目录的文件。 但是,这些文件位于“C:\ MyContentFiles \”位置,即它们不在项目锥体内。 这个目录也有子目录。 目录的内容不受pipe理。 因此,我必须包括所有的内容。 当我将它们作为“内容”包含在项目中时,它们被复制,但目录结构丢失。 我做了这样的事情: <Content Include="..\..\MyContentFiles\**"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> 如何将这些文件/目录recursion地复制到保存目录结构的项目的输出目录中?
将某些NuGet打包添加到项目中时,有时会在.csproj文件的第一个属性组中显示一个奇怪的项目。 <PropertyGroup> … <NuGetPackageImportStamp>3d051ef3</NuGetPackageImportStamp> </PropertyGroup> 邮票每次都是不同的,而且看起来并不连贯。 在NuGet文档中我找不到任何对<NuGetPackageImportStamp>引用。 它是什么,它是如何工作的? 有必要吗? 一个似乎每次都会添加的包是StyleCop.MSBuild ,至less在当前的4.7.49版本中是这样的。 只需将该软件包添加到新项目中,即可看到这个神秘项目出现在您的项目文件中。
当我在Visual Studio 8中向项目添加一个程序集引用时,该引用的Aliases属性被设置为“global”。 什么是这个属性的好处,为什么它设置为全球? MSDN告诉我,这是程序集的别名列表,但不是为什么我可能想要使用这个属性,或者为什么大多数被别名为“全局”。 MSDN参考
我经常向ASP.NET项目中添加大量的内容文件(主要是图片和js)。 我正在使用VS发布系统,在发布时,只有在将它们包含在项目中时才会发布新文件。 我想自动包含指定目录中的所有文件。 有没有办法指定哪些目录应自动包含在csproj文件或其他地方?
怎么 <None Include="C:\foo.bar" /> 不同于 <Content Include="C:\foo.bar" /> ?
在C#解决scheme中,我添加了一个现有的项目。 之后,Visual Studio在其他.csproj文件中添加了以下条目: <ItemGroup> <Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" /> </ItemGroup> 这是用来干嘛的? 我可以删除它吗?
任何人都看到这个? 我有一个大型的Visual Studio项目,不断添加[Subtype]Designer[/Subtype]到我的.vcproj然后在下一个打开和closures的项目中删除它。 StoredImageControl.cs只定义了一个类。 任何人都知道如何closures它,因为它真的搞乱了我的版本控制。 这是之前: <EmbeddedResource Include="StoredImageControl.resx"> <DependentUpon>StoredImageControl.cs</DependentUpon> </EmbeddedResource> 这是之后 <EmbeddedResource Include="StoredImageControl.resx"> <DependentUpon>StoredImageControl.cs</DependentUpon> <SubType>Designer</SubType> </EmbeddedResource>