我在 Visual Studio 2019 中有一个 .NET Core 3(不是ASP)项目,它有两个不同的启动配置文件:
但是每当我启动我的项目时,它总是使用第一个配置文件,即使我在我的项目设置中选择了第二个配置文件。如何告诉 Visual Studio 实际使用其他启动配置文件?
编辑:这是我的工具栏的样子:
我没有下拉菜单来选择启动配置。我找到了“启动调试目标”命令,可以将它添加到我的工具栏,但它也没有下拉菜单,它看起来就像常规的启动按钮。
我使用的是ngen.exe(.Net Native Image Generator)版本2.0.50727.312.这是最新版本吗?如果没有,我在哪里可以下载最新版本?msdn上的这个页面似乎没有下载链接.如果重要,我需要.Net Framework 3.5的ngen.exe.
我想固定一个通用类型的数组并获得一个指向其内存的指针:
T[] arr = ...;
fixed (T* ptr = arr)
{
// Use ptr here.
}
Run Code Online (Sandbox Code Playgroud)
但是尝试编译上面的代码会产生这个编译错误:
Cannot take the address of, get the size of, or declare a pointer to a managed type
Run Code Online (Sandbox Code Playgroud)
这些 问题的答案证实,没有办法声明通用T*指针.但有没有办法固定通用T[]数组并获得IntPtr固定内存?(这样的指针仍然有用,因为它可以传递给本机代码或转换为已知类型的指针.)
我有一个 .NET Core 3 项目,它引用了其他几个项目。我的主根项目有Release-X构建配置,但其他项目只有一个Release配置,没有匹配的Release-X配置。
当我尝试使用此发布我的主根项目时......
dotnet publish MyProject.csproj -c Release-X
...它似乎对所有引用的项目使用了一些神秘的不存在的默认构建配置。(我可以这么说,因为引用的项目允许在其所有构建配置中使用不安全代码,但使用上述命令进行构建会导致不安全代码错误。)
我希望能够使用其Release-X构建配置来构建我的主根项目,但使用其Release配置来构建所有引用的项目。我该怎么做呢?
我正在寻找一种跨平台(.Net和Mac上的.Net和Mac,以及Windows上的单声道)来解码wav,mp3或ogg文件,这样我就可以根据需要通过DirectSound或OpenAL播放解码流.
可以解码mp3或ogg的解决方案就足够了 - 解码两者都不是必需的.如果它(或另一个解决方案)也可以解码wav,那将是理想的,但并不是绝对必要的,因为我可能将我的wav文件转换为mp3或ogg.
只能解码wav文件的解决方案只是部分解决方案,但我会采取我能得到的解决方案.;-)
这是我已经看过的内容:
我们非常欢迎您试图追求我上述其中一种解决方案实际上是最佳选择.
谢谢.
假设我有两个Git存储库,A和B. B是A的子模块.
为了简单起见,我们还假设我有一个神奇的函数get_sha_B,给定来自A的SHA提交,返回B的所需SHA提交.
如何在repo A上运行filter-branch,以便重新编写repo A的每个提交以指向所需的repo B提交,如get_sha_B?
谢谢!
我正在使用Visual Studio 2015编写C#应用程序.此应用程序以"任何CPU"为目标(未启用"首选32位"选项),这意味着应用程序将编译为将在32位模式下运行的单个构建目标64位操作系统上的32位操作系统和64位模式.
此应用程序要求将某个本机DLL复制到其输出文件夹(即bin/Debug或bin/Release文件夹).此DLL有单独的x86和x64版本,需要根据开发人员的操作系统将正确的版本复制到输出文件夹.
到目前为止,我已经发现我可以通过在我的.csproj文件中添加如下内容来有条件地将文件复制到输出文件夹:
<ItemGroup Condition="MY CONDITION HERE">
<Content Include="MyNativeLib.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我如何编写一个等同于"开发人员的操作系统是x86"或"... x64"的条件?
(要非常明确,我不是要问如何在平台构建目标上有条件地复制文件,在我的情况下总是"任何CPU".我问如何根据操作系统架构有条件地复制文件哪个Visual Studio恰好正在运行.)
我有两个 C# .NET 5 项目,我们称它们为 A 和 B。两者都是可执行文件(不是 DLL)。项目 A 引用项目 B。我想将项目 A 作为自包含的可执行文件发布(尽管不是单文件,如果这很重要)。我正在使用此命令启动发布过程:
dotnet publish A.csproj -c Release --self-contained -r win-x64 /p:PublishTrimmed=true /p:PublishReadyToRun=true
但是,这在尝试构建项目 B 时会产生以下错误(这是必需的,因为项目 A 引用了它):
error NETSDK1031: It is not supported to build or publish a self-contained application without specifying a RuntimeIdentifier. You must either specify a RuntimeIdentifier or set SelfContained to false.
但正如你所看到的,我感到(我想?)指定与运行时的标识符-r win-x64。我猜我在命令行上指定的运行时标识符在构建项目 B 时没有通过。如何在不禁用 SelfContained 的情况下解决这个问题?
我的 dotnet 版本是:
dotnet --version
5.0.400
Run Code Online (Sandbox Code Playgroud)
编辑:我不想放入<RuntimeIdentifier>win-x64</RuntimeIdentifier>我的项目文件,因为我需要为多个不同的运行时构建,并且我希望能够通过命令行控制它。