我有一个天蓝色的应用程序。是否可以将其作为免费应用程序共享(因此任何人都可以在自己的 azure 帐户上部署它),而无需每次都提供源代码并重新编译它。我正在使用 azure 数据库,所以我需要连接字符串来发出请求,现在它的字符串是硬编码的。此外,我使用硬编码的连接字符串来访问 blob 和动态实例分配。有没有办法取出这些字符串并允许在不重新编译项目的情况下更改它?谢谢。
1 回答
是的,一点没错。当你编译一个云项目时,它会创建一个包文件和一个配置文件。如果需要,您可以分发这些文件。
关于删除连接字符串和其他设置,您可以做的一件事是创建一个单独的云项目,该项目与您的主云项目具有相同的设置。唯一的问题是特定于用户环境的设置(如连接字符串)将为空。然后你会打包这个云项目并分发cspkg
和cscfg
归档。
要进一步详细说明,请看下面的屏幕截图:
基本上在这里我有 2 个云项目(Web.Azure
和Web.Test.Local
),并且两个云项目都引用同一个Web
项目。现在在我们的例子Web.Azure
中是我们的开发云项目和Web.Test.Local
测试云项目。这两个项目都具有相同的设置名称,例如SqlConnectionString
。现在在 中Web.Azure
,我已将其值指定为我们的开发 SQL Server 的值,但Web.Test.Local
我可以指定任何其他值。当我们希望我们的测试人员测试应用程序时,他们会获取包Web.Test.Local
并获取基于该项目的设置。以同样的类比,您可以有两个云项目(让我们调用 thenDev
和Release
)。您需要做的是在两个云项目中使用相同的设置,但您的这些设置中不会有任何值Release
项目。
您可以采取的另一种方法是这篇博文中描述的内容:http: //blog.paraleap.com/post/2011/09/13/Managing-environments-in-a-distributed-Azure-or-other-cloud-基于网络的解决方案。
请注意,cspkg
文件本质上是一个zip
文件。我可以将包文件的扩展名从 cspkg 更改为 zip 并解压缩该文件并查看所有二进制文件。然后我可以使用像 RedGate 的 Reflector 或 Telerik 的 Just Decomplie 这样的工具来反编译二进制文件并可能查看源代码。为避免这种情况,您可能希望在打包二进制文件之前对其进行混淆。