我需要在dll中包含有效的API密钥,而该API密钥不将其放入我团队的版本控制中。我承认该字符串可以从dll中反编译,但这并不是真正的问题,因为这是针对内部工具的。
当前,我已将一个.resx
文件添加到包含API密钥的.csproj
文件中。明确通过.gitignore
将其排除在版本控制之外。但是,我不想依靠.gitignore
作为安全措施。
我想做的是在编译时读取环境变量,并将正确的值注入const
属性或其他内容中。
.NET中有一种可接受的方法吗?
答案 0 :(得分:0)
一种实现使用环境变量的目标的方法可能是添加一个预构建步骤,该步骤运行一个脚本以将环境变量写入文件,例如:
预构建步骤:
echo namespace Foo ^{ public class Bar ^{ public const string Key = ^"%secretkey%^"^;^}^} > "$(ProjectDir)test.cs"
然后执行清理该文件的构建后步骤:
构建后步骤
echo namespace Foo ^{ public class Bar ^{ public const string Key = ^"*****^"^;^}^} > "$(ProjectDir)test.cs"
万一失败,我仍然将test.cs
放在.gitignore
中。