在C#解决方案中,我添加了一个现有项目.
之后,Visual Studio在其他.csproj文件中添加了以下条目:
<ItemGroup>
<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这是用来干嘛的?
我可以删除它吗?
有谁看过这个吗?我有一个大型的Visual Studio项目,在项目的下一次打开和关闭时不断添加[Subtype]Designer[/Subtype]
到我的项目中.vcproj
然后删除它.只定义了一个类StoredImageControl.cs
.任何人都知道如何关闭它,因为它实际上搞乱了我的版本控制.
这是在之前:
<EmbeddedResource Include="StoredImageControl.resx">
<DependentUpon>StoredImageControl.cs</DependentUpon>
</EmbeddedResource>
Run Code Online (Sandbox Code Playgroud)
这是在之后
<EmbeddedResource Include="StoredImageControl.resx">
<DependentUpon>StoredImageControl.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
Run Code Online (Sandbox Code Playgroud) 怎么
<None Include="C:\foo.bar" />
Run Code Online (Sandbox Code Playgroud)
不同于
<Content Include="C:\foo.bar" />
Run Code Online (Sandbox Code Playgroud)
?
我经常在我的ASP.NET项目中添加很多内容文件(主要是图像和js).我正在使用VS发布系统,在发布之前,新文件在我将它们包含在项目中之前不会发布.我想自动包含指定目录中的所有文件.有没有办法指定哪些目录应该自动包含在csproj文件中或其他地方?
当.NET Core仍然使用该project.json
格式时,您可以构建一个针对多个框架的类库(例如net451,netcoreapp1.0).
既然官方项目格式正在csproj
使用MSBuild,那么如何指定要定位的多个框架?我试图寻找这个在VS2017的项目设置,但我能只针对从.NET框架的核心在单一框架(它甚至没有列出我的其他完整的.NET框架版本都已经安装) :
我正在尝试使用.NET Core编写一个插件系统,我的一个要求是能够将插件DLL及其依赖项分发给用户进行安装.但是,我无法弄清楚如何将我的NuGet依赖项包含为构建工件并将它们输出到构建文件夹,而不必将其dotnet publish
用作hack.有什么方法可以在csproj中指定它吗?
在"旧学校"MSBuild项目中 - 例如仍然在VS2017中的Windows窗体中使用 - 文件可以通过DependentUpon
csproj文件中的项目"嵌套" .
我用它来在Noda Time中将单元测试组合在一起,例如
<Compile Include="LocalDateTest.PeriodArithmetic.cs">
<DependentUpon>LocalDateTest.cs</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)
这导致了易于导航的测试:
转向project.json
.NET Core时,我故意"丢失"此功能,但希望在转换为MSBuild时会返回.但是,看起来基于.NET Core SDK(根元素<Project Sdk="Microsoft.NET.Sdk">
)的MSBuild项目在Visual Studio 2017中得不到相同的处理,即使ItemGroup
手动添加与"旧学校"项目相同的元素.
ASP.NET Core项目为缩小的CSS和Javascript接收自动嵌套,但目前尚不清楚如何将其应用于.NET Core库项目中的C#.
我有一个C#项目说MyProject.csproj位于"C:\ Projects\MyProject \".我也有我想复制到这个项目的输出目录中的文件.但是,文件位于"C:\ MyContentFiles"位置,即它们不在项目锥内.该目录也有子目录.目录的内容不受管理.因此,我必须包括其下的所有内容.
当我在项目中将它们包含为"内容"时,它们会被复制,但目录结构会丢失.我做了这样的事情: -
<Content Include="..\..\MyContentFiles\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Run Code Online (Sandbox Code Playgroud)
如何将这些文件/目录递归复制到项目的输出目录中并保留目录结构?
将某些NuGet包添加到项目时,有时会在.csproj文件的第一个属性组中显示一个奇怪的项.
<PropertyGroup>
...
<NuGetPackageImportStamp>3d051ef3</NuGetPackageImportStamp>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
邮票每次都不同,并且看起来不是连续的.
我<NuGetPackageImportStamp>
在NuGet文档中找不到任何引用.它是什么,它是如何工作的?有必要吗?
一个似乎每次添加这个的包是StyleCop.MSBuild,至少使用当前的4.7.49版本.只需将该包添加到新项目中,您就会看到这个神秘项目出现在您的项目文件中.
随着从VS2017引入project.json
的新csproj
格式的转变,我正在努力理解dotnet
cli和new 之间的区别msbuild
以及何时使用另一个.
1)要csproj
从命令行构建新的netstandard库,我应该调用dotnet
cli(例如dotnet restore
dotnet build
)还是使用msbuild
(例如msbuild ExampleNetstandard.sln
).
2)另外,我的理解是有两个版本msbuild
,一个基于完整框架,另一个基于目标dotnet core
.它是否正确?我应该经常使用dotnet version
3)是dotnet cli
独立还是需要msbuild
安装?例如,当您安装dotnet SDK时,这也安装了msbuild吗?如果是这样与vs2017安装的版本不同?